Prints formatted data to a string while limiting the maximum number of characters to produce.
#include <stdio.h> int snprintf(char *buffer, size_t size, const char *format[, argument]...); int snprintf_s(char *buffer, rsize_t size, const char *format[, argument]...);
buffer
size
buffer
, in characters. Size in chars for snprintf
or size in wchar_ts for the wide-character functions.
format
argument
Let len
be the length of the formatted data string, not including the terminating null. len
and size
are in bytes
for _snprintf
, wchar_t
for _snwprintf
.
If len < size, len characters are stored in buffer, a null-terminator is appended, and len is returned.
snprintf
and snprintf_s
differ in the way that they handle overflow. In the case of snprintf
and _snwprintf
:
len
= size
, len
characters are stored in buffer, no null-terminator is appended, and len
is returned.
len
> size
, size
characters are stored in buffer, no null-terminator is appended, and a negative value is returned.
buffer
is a NULL
pointer and size
is zero, len
is returned as the count of characters required to format the output, not including the terminating null. To make a successful call with the same arguments, allocate a buffer holding at least len + 1 characters. In the case of snwprintf_s
, if the storage required to store the data and a terminating null exceeds size, the functions set buffer to an empty string, errno
is set to ERANGE, and return -1. If buffer
or format
is a NULL pointer, or if size is less than or equal to zero, these functions set errno
to EINVAL and return -1.
The ordinary characters and escape sequences are copied to buffer
in order of their appearance.
Versions | Defined in | Include | Link to |
---|---|---|---|
INtime 3.0 | intime/rt/include/stdio.h | stdio.h | clib.lib |